package micro.data.mapper;

import micro.mybatis.Pageable;

import java.util.List;
import java.util.Map;

/**
 * @author txw
 * @version V1.0
 * @Title: BaseDbMapper
 * @ProjectName micro-user-server
 * @Description: 描述
 * @since 2018/6/18 23:45
 */
public interface BaseDbMapper<T> {
    /**
     * 批量创建
     * @param t
     */
    void create(T t);

    /**
     * 批量创建
     * @param list
     */
    void createBatch(List<T> list);

    /**
     * 通过id 查询
     * @param id
     * @return
     */
    T findById(Long id);

    /**
     * 通过id 查询
     * @param id
     * @return
     */
    T findByStrId(String id);

    /**
     * 分页查询
     * @param pageable
     * @return
     */
    List<T> findPage(Pageable pageable);

    /**
     * 更新对象
     * @param t
     * @return
     */
    int update(T t);

    /**
     * 通过id 删除
     * @param id
     */
    void deleteById(Long id);

    /**
     * 通过id 删除
     * @param id
     */
    void deleteByStrId(String id);

    /**
     * 查询所有数据
     * @return
     */
    List<Map<String,Object>> findAllMap();

    /**
     * 分页 查询所有数据
     * @param pageable
     * @return
     */
    List<Map<String,Object>> findAllMapPage(Pageable pageable);
}